home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000 #2
/
Ham Radio 2000 - Volume 2.iso
/
HAMV2
/
TCP_IP
/
TNOS230D
/
NEW2TN2.22
< prev
next >
Wrap
Text File
|
1997-06-28
|
25KB
|
552 lines
TNOS Release Notes - Release 2.22
Brian A. Lantz, brian@lantz.com
v1.00, June 28, 1997
These are the FINAL Release Notes for release 2.22 of TNOS. Hope-
fully, this list of changes will give you an idea of the scope of work
that has occured since the release of TNOS 2.21.
______________________________________________________________________
Table of Contents:
1. Bug Fixes
2. Improvements and Enhancements
3. Minor Changes
4. Remaining Known Bugs
5. To-Do List
______________________________________________________________________
1. Bug Fixes
The following bugs have been squashed.
o Minor browser fix to use only the LAST <TITLE> tag, if multiples
exist
An old HTML trick was to define multiple TITLEs on a page, to get a
kinda scrolling marquee effect from the title in the window's
titlebar changing. The TNOS browser wasn't set up to properly
discard all but the final one.
o Cleanup up some code conditionals when forwarding and converse are
omitted
o Cleanup to again allow MBFWD flag to be undefined
o Proper treatment of PBBS messages with callsign fields > 6
characters long When trying to send via PBBS forwarding messages
with Internet addresses that had the user or first section of the
hostname with more than 6 characters, previously this would be re-
addressed as 'areaname@areaname', using the current area's name.
This was NEVER correct. Since non-ham messages should NOT be
passing via PBBS forwarding, such messages will now be marked as
deleted (if in personal areas) and removed from the forwarding
queues.
o Fixed where rejected personal messages weren't being deleted from
mailboxes
o Corrected formatting of TCB in 'tcp view' command
o Fixed a linking problem if HTTP defined but not BROWSER
o A workaround for a libc bug in free()
Some versions of GNU libc (at least some for Linux) have a bad bug
that once it happens, a call to __libc_free() never returns. I have
added code to the Unix version to keep this from disabling a system
indefinitely. While I cannot recover gracefully from this, if a
call to free takes longer than 60 seconds to return, then TNOS is
exited. This allows properly configured systems with restart
scripts (or an entry in the inittab file) to only be 'locked up'
for one minute due to this libc bug.
I have no idea why this is happening in the library, but it SEEMS
to be related to a free getting called while the OS is swapping to
disk.
o Fixed an incompatibility between SETPSINFO flag an environment
variables
The SETPSINFO code does it's magic by basically trashing the
command line arguments and environment variables. While I knew this
when I added the code for the SETPSINFO, I hadn't thought of
possible problems.
A couple of places in the code used environment variables (if they
existed) while we now effectively disabled. In addition, depending
on the timing on startup, the TERM environment variable would (at
times) be cleared before the NCURSES code had a chance to read it.
o Re-enabled '412 No newsgroup selected' NNTP server message
o Fixed a bug in the HTTP server that preventing using ports other
than 80
o Fixed crash if <PgUp> used from Command Session
o FBB forwarding problem if all messages in a transfer refused
It seems that on occasion with FBB, if an entire negotiated
transfer is rejected (all are answered as '-'), and there are more
in that section, then the rest would be ignored and also marked as
deleted.
o FBB/Xfwd problem if 'SB'ed message in personal area
Also, if a message in a negotiated transfer (contained in a
personal mail area) was original sent as a 'SB', then the other
messages in that transfer were also marked as 'SB'. This one, while
VERY rare, was a bear to find ;-)
And, messages MARKED as 'SB' (as above, in a personal area) were
NOT getting properly deleted (because of the 'B').
o Fixed a buglet with unusually 'Sx' lines in reject checking
o Fixed the 'time' server to properly adjust to UTC
o Made a few minor forwarding mods, to handle rare quirks
o Fixed the 'ping of self' resource contention buglet
If from your TNOS console you ping'ed your self, a crash would
usually follow. This was caused by a timing problem. When the raw
IP socket was opened to send the ping, it added an entry into a
table. That same table is traversed when an incoming packet is
received. When the send of the ping is complete, that entry is
removed. What was happening was that the table was having the entry
removed WHILE it was being traversed.
This timing was only 'just right' when pinging from the console;
pinging yourself from the PBBS didn't cause the problem.
o Fixed a problem of occasional non-clearing of HTTP connections
This occured when the 'http simult' value was reached, a connection
was waiting for a 'slot' to get it's data with, and the user
impatiently disconnected the socket. It was compounded by trying to
have one counter doing two functions (obviously, not very well ;-)
o Fixed a bug when 'conv entrychannel' wasn't being used for telnet
connects
o Fixed bug where bad rewrite file could abort forwarding session
o All the above included in 2.22b1
o Added patch from Gareth to do White Page lookups properly w/out
ASKHOME
o Minor fix for NNTPCLI support
o Minor fix for newer LIBC jmp_buf.h file under Linux
o Minor fix to area cleanup code, when exiting BBS
o Minor fix in rspf.c to prevent calling set_timer from a null route
o Minor fixed in wildmat.c to prevent calling with empty or null
string
o Fix for obscure statline problem
o All the above included in 2.22b2
o Fixed a problem with large SOA's being output if 'dom tr on'
o Fixed an improperly dereferenced pointer in fbbfwd.c
o Added code to convert to lowercase username in HTTP PBBS code
o Fixed an obscure bug with forward sessions and keyboard locking
o Workaround for bug where some PBBSs send an extra forwarding
prompt
o Fixed a rare problem with F9'ing from Command to Trace session
o Fixed a fwding problem if more than one Message-Id lines in a
message
o Fixed a problem with AXUI and digis
o All the above included in 2.22b3
o Plugged an obscure security hole with PBBS finger command
o Fixed a problem accessing sockets with TNOS/DOS
2. Improvements and Enhancements
The following optimizations and improvements have occurred.
o Added support to the Browser for <MARQUEE> tags
This scrolling marquee is placed on the top line of the three line
control area at the bottom of the browser screen. If an ISINDEX tag
is present on the same page as a MARQUEE, the MARQUEE is ignored,
since the ISINDEX instructions use the same line in the control
area.
Also, if there are more than one MARQUEE tags in a page, the last
one is the one displayed.
o TNOS Statusline News Server added
Building on the browser marquee code, the statusline for the
Command Session can now have a marquee which gets updated from a
special URL at www.lantz.com.
NOTE: This server is only compiled in if the BROWSER flag is set!
To enable display of the Statusline News Server, you need two
commands. The first is 'start statnews'. This retrieves the
current news info from www.lantz.com, and then it waits till the
top of the next hour, and does it again. While the updates occur in
minute zero of the hour, the second is purposely randomized based
on the last part of the 'ip address', to keep from having a 'pile
up' on second zero ;-)
The updating of this data can be stopped with 'stop statnews'. You
can do a 'start statnews' at any time, to single to that process
for it to re-read the News URL at that time, if you wish.
The second step is that you need to add a 'M' to your 'statmode'
command. If you are not using a 'statmode', then this is part of
the default display. A 'stop statnews' command has no effect on
this, though. If the 'M'arquee flag is set for your 'statmode',
then the last retrieved news will be displayed.
o Support for recent ncurses (1.9.9e)
o Color support added to Unix versions
The various color commands now work with Unix and curses.
o Added creation of a 'structur.fil' file on startup
This file contains the default and actual (in use) names for all
modifyable filenames, directory names, and default session manager
names. This can be used to help rectify problems discovering where
TNOS expect a file or directory to be located.
The 'in use' section of this file can be saved separately, and used
as a configuration file with the '-f configfile' command line
option, if desired.
The 'structur.fil' file is created in the TNOS root directory used
on execution.
o Finished port of DOS SCREENSAVER code for Unix
Now the SCREENSAVER can be compiled into TNOS/Unix and used.
o Started adding in full support for CGI applications
o CGI environment variable available in 'echo var=' Server-Side
Includes
All environment variables (regular and CGI) are available in this
manner, if the HTTPCGI flag is set when TNOS is compiled.
NOTE: MSDOS users using this will want to make sure to allocate a
large enough environment size, using the CONFIG.SYS 'SHELL'
command.
o Added a 'http execcgi' command to allow disabling of CGI at
runtime
This is off (set to 0) by default.
o Added a 'wpages clientcall' to set the FROM call of WP client
updates
o Temporarily added a forwarding connection type of 'fbbtelnet' for
FBB 'telnet' forwarding
FBB's 'telnet' share the same NAME as the RFC854 protocol, but
little else. It IMPROPERLY handles <CR> usage, and cannot seem to
properly handle binary compressed forwarding. If you need to use
telnet to forward to a FBB PBBS, then make the connection type
'fbbtelnet' instead of 'telnet' in your forward.bbs file. This will
hack the <CR> problem and restrict the forwarding mode to non-
compresses FBB-style forwarding.
This is only temporary, and may not remain until the official
release of TNOS 2.22. I am working with F6FBB to help him make his
'telnet' more standard.
o Added a 'http hostname' command to set the default hostname of the
HTTP server
This allows you to define this as a different hostname from the
'hostname' of the TNOS box itself.
o HTTP server is now a multi-homed server!
That is, it can now provide different input for different IP
addresses, and respond as different hostnames. The 'start http
<port> <rootdir>' command now has additional optional parameters
for hostname and ip address to use. For a syntax listing of this
command, do a 'start http ?'.
The port still defaults to 80. The dirname still defaults to the
'http' directory under your TNOS root directory. The hostname
defaults to the setting of the 'http hostname' command (which
itself defaults to the value specified by the 'hostname' command).
The ip address defaults to INADDR_ANY, or ANY IP address that TNOS
has assigned to it for any interface.
All optional parameters can be specified as '-', if needed, to
retain the default setting for that parameter.
This can also be used to only serve HTTP data on certain addresses
in use on the TNOS box, but not to ALL addresses.
o Added a generic Message server
This allows you to set up a specified port to listen for
connections, and when they are received, to output a user-definable
message, followed by a disconnect. The port a Message server can be
installed on is configurable, and so is the optional ip address
(which defaults to INADDR_ANY, or ANY IP address that TNOS has
assigned to it for any interface).
Newlines (or blank lines) can be imbedded in the message string by
using "\n" within the string.
For a usage string for the Message server, do a 'start message' or
'stop message'.
o Added a generic TScript message server
This is like the Message server mentioned previously, but instead
of defining a string to be sent to the remote machine upon
connection to a specified socket port, a TScript script to be run
is defined. This can include ANY TScript commands valid in a
TUTOR/NEWS/INFO server, a 'script' command, or a scripthook file.
The port a Message server can be installed on is configurable, and
so is the optional ip address (which defaults to INADDR_ANY, or ANY
IP address that TNOS has assigned to it for any interface).
For a usage string for the TScript server, do a 'start tscript' or
'stop tscript'.
o Added a 'pbbs pruneage' command to allow variable prune aging
By default, the 'pbbs pruneage' is set to 6 months. The value of
this command is used with the 'pbbs prune' command.
o Modified the 'pbbs prune' and 'expire' commands to remove empty
files
o All the above included in 2.22b1
o Added RIP98 support, thanks to Gareth! The impact of this
addition (as well as a good description of how to set up RIP) is
described in a file from Gareth, located at
ftp://ftp.lantz.com/tnos/misc/RIP98.txt
o If you are running the HTTP server, read the next entry!
o IMPORTANT HTTP CHANGE!! Default file changed from root.htm(l) to
index.htm(l)
o If you are running the HTTP server, did you read the above entry?
o Removed the AX25PASSWORD compile flag
o Added a 'pbbs ax25passwd' command
This allows you to configure at run-time (rather than compile time)
the ability to make all users (with accounts in the FTPUSER file)
confirm their identities with a password over AX.25. Netrom and
telnet connects are not affected by this, neither are anonymous
users or users defined as PBBSs in the FTPUSERS file. The default
for this command is off.
o Changed build-make.inc to accomidate for recent NCURSES releases
While previous NCURSES releases had a /usr/include/ncurses
directory, or a /usr/local/include/ncurses.h file, the recent
version has neither, but now just uses a /usr/include/curses.h
file. To accomidate this, if the older ncurses directory or file is
not found, a symlink is created of /usr/include/ncurses.h which
points to /usr/include/curses.h. TNOS includes ncurses.h (still
does, for this purpose) to avoid accidently including a non-ncurses
header file, on older systems.
o All the above included in 2.22b2
o Added code to prevent possibility of dups or forgeries
This is in three parts. First, if an outbound forwarding session
does NOT see a SID from the remote PBBS (due to either a bad
forwarding script in your forward.bbs file, or a SERIOUS problem
with the remote), then the forwarding session is aborted, a message
is logged in the logfile, and also a message is sent to the console
(whether 'forward trace' is on or not). This prevents TNOS from
being the cause for dups!
But, this isn't enough, as the remote of an incoming forwarding
session could have an erroneous forwarding script on IT'S side,
causing IT to eat the SID sent by your TNOS. In that case, you
don't KNOW that it's a BBS, as it never identified itself as one.
To guard against this, if a message is sent and it has R: lines but
it is NOT identified as a PBBS (with a received SID), then the
message is automatically held, and an error message is logged in
the logfile. These messages are not deleted, so you have them for a
reference in communications with the remote sysop, but they should
NOT be simply released, as they now have a NEW bid!
Note, this same 'fix' also prevents users being able to impersonate
other users as messages originated from other systems, as was the
case recently when someone attempted to impersonated W0RLI. This
was done by a user entering a 'sb' line with a '< W0RLI' and a
first data line of a dummied-up R: line, making it LOOK like it was
from W0RLI, and forwarded from his PBBS. Users should NOT be
allowed to produce such forgeries.
Also, if a bulletin is received from a PBBS, with R: lines but NO
BID, this is ALSO held, with an error in the logfile. This also
indicates an error on the REMOTE system. These messages should also
NOT be released. This cannot happen if the 'pbbs nobid off' command
is used, but if the 'pbbs nobid' command is 'on', this will hold
the message anyway.
If a non-bulletin is received from a PBBS, with R: lines but NO
BID/MID, this generates a warning message in the logfile, but is
NOT held. There has NEVER been an agreement among PBBS authors as
to MIDs, though most (except for W0RLI) treat MIDs and BIDs mostly
identically. By the specification non-bulletins aren't REQUIRED to
have a BID. If this occurs, the received message will have it's MID
made into a BID, and passed on. This is usually not a problem (to
anyone but Hank), as personal messages are not 'flooded' as
bulletins. The worst that happens is that the same personal message
gets delivered multiple times. (NOTE: personal messages to
'sysop@*' are treated as bulletins by TNOS, and most all other
PBBSs).
o TNOS treatment of BIDs/MIDs
TNOS is totally compliant with the PBBS specification in this
regard. The spec states that all bulletins must have BIDs and if a
PBBS receives a message without one, it assigns one. The
specification states that a BID is optional for personal messages
and should NOT be assigned to NTS messages.
In regards to MIDs, the specification states that "Because of
considerable disagreement between the authors of existing systems
on the implementation of this feature (MIDs), it is not included as
part of this recommendation. There is no requirement that a BBS
implement a MID feature."
TNOS assigns a MID (message ID) to all messages. If a non-bulletin
message does NOT have a BID, then the MID is used in it's place in
all occurances. All messages forwarded from TNOS systems will
either have a BID or a MID sent with them. NO messages will ever be
forwarded from a TNOS system without a BID or MID.
This treatment of MIDs by TNOS is consistent with the
specification, contrary to what W0RLI would like to believe ;-) If
something is not covered by a spec and left to interpretation, then
nobody's implementation is incorrect.
o Automatic location/verification of LOCKDIR's existence
The following paths are checked (in this order) and the LOCKDIR is
set to the first one that matches. If none of them are found, an
error message is printed, and TNOS exits.
o /usr/spool/uucp
o /var/spool/lock
o /var/spool/uucp
o /var/lock
o Added '-l lockdirpath' command line parameter
This allows you to set up a custom LOCKDIR path, if needed.
o Added a 'smtp holdscanall' command
For some reason (which I cannot remember) the scanning of the
wordhold.dat and userhold.dat files was coded to NOT check files
received from remote sites, but to only scan locally generated
messages. This new command will allow you to have ALL email
messages scanned by these files, and held if there is a reason.
This command is 'off' by default, so it works like it always has.
o All the above included in 2.22b3
3. Minor Changes
The following minor changes have occurred.
o Added additional output to 'http status' command
o Added a idle timeout to TCPGATE code
Uses a hard-coded constant in tcpgate.c, which defaults to 10
minutes.
o Updated the config.hlp file, used by mkconfig.tcl
o New outbound forwarding sessions are now inhibited once shutdown
starts
o Added code to make usable PBBS BID from any internet MessageId
o Reformatted the 'daytime' server's output, adding timezone
o Removed the no longer functional 'isat' command
o More lint cleanup, this time in MSDOS code
o All the above included in 2.22b1
o HTTP server treats .htm files the same now as .html
o All the above included in 2.22b2
o Improved the 'forward alteredbids' command's scanning
While correctly identifying a change in BID within a message, the
scanning was changed to prevent needless message holding/deleting.
This would occur if a truncated BID was found within the R: lines,
without the REAL bid being affected. Now, if the BID in an R: line
is NOT the same as the BID received, it is only flagged if it is
NOT a truncated version of the BID. If it differs (or is longer
than the BID received), it will be flagged, but no 'false alerts'
will be given due to truncated R: lines.
With the OBVIOUS flood of newbie SYSOPS and their desire to put all
sorts of MEANINGLESS garbage in their R: lines (causing the NEEDED
BID to get lost or truncated), this modification should help.
o Minor changes to support new glibc library
Compiles and runs, but there still MAY be an unresolved problem or
two with glibc still. We'll just have to see.
o Dramatically simplified files.c and created auth.c
Moved authentication functions to a new file, auth.c, and did a lot
of code simplification to files.c. Leaner and meaner....
o All the above included in 2.22b3
o Some lint cleanups
4. Remaining Known Bugs
The following are known bugs that will be addressed in the near
future. These may or may not be fixed before the next release is made
available.
1. The proxy server scripts do not seem to work properly
There is a problem, that is being looked into, which seems to be
related to calling scripts from within scripts (which proxy.scr
DOES).
2. None other at this time.... ;-)
5. To-Do List
The following are things on the author's 'to-do' list that are being
considered for this or a future release of TNOS. These may eventually
be done, but not necessarily by the next release.
1. Complete the spec and coding of the non-IP HTTP PBBS interface
2. Add to the browser support for the 'select' and 'textarea' tags
3. Add to the browser better rendering of tables within tables
4. Export a complete set of CGI environment variables when 'exec cmd'
used
Currently you can execute a program and pass in explicit parameters
(which CAN be dynamically assigned using server-side includes), but
it is NOT a CGI-compatible interface. I will consider adding this
at a later time.
5. Add capability to allow use of OS commands
This includes finishing the incomplete 'pipe' command in the Unix
release. Due to the obvious restrictions of MS-DOS (memory, etc.),
this WILL be considered for Unix version only.
6. Add better support for PBBS<->Internet mail address translation
The 'translate' file and improved handling of aliases is a START,
but more work needs to be done here. Maybe a 'translate.out'
file...
7. Add code to allow a TIP socket type, for use with LL Modems
8. Tweek the WPages code a bit
Need to improve the code that insures that the wpagebbs entries are
correct, of the proper length, and actually look like hier
addresses. Also, make the expiring of WPages files less fragile if
the file has become corrupted.
9. Check into duplicate entries in the WP files
While not harmful, the WPages routines SHOULD be overwriting
existing entries, NOT creating new ones.
10.
Consider adding intelligence to convers links
The idea being that if there are no incoming links, and no local
users, that the remote outgoing link would be brought down until
this changed.
11.
Consider moving MSDOS version to curses for screen I/O